home *** CD-ROM | disk | FTP | other *** search
- /*
- * main program to test gms server
- * by Aaron Wohl (aw0g+@andrew.cmu.edu) jul 1990
- * Carnegie-Mellon University
- * Special Projects
- * Pittsburgh, PA 15213-3890
- * (412)-268-5032
- */
-
- #include <stdio.h>
- #include <string.h>
-
- #define NIL 0L
-
- #include "mmc_core.h"
- #include "mmc_core_private.h"
- #include "mmc_prep.h"
- #include "mmc_print_state.h"
- #include "mmc_macmail.h"
-
- #define fatal_error(xx_arg) {printf xx_arg;fflush(stdout);exit(0);}
- extern void exit(int);
-
- char get_cmd(void);
- char get_cmd()
- {
- char buf[100];
- printf("mmc> ");
- if(gets(buf)==NIL)
- return 0;
- return buf[0];
- }
-
- void get_state(void);
- void get_state()
- {
- mmc_state s;
- s.mmc_st_maj_ver=MMC_ST_maj_ver;
- s.mmc_st_min_ver=MMC_ST_min_ver;
- mmc_get_state(&s,NIL);
- mmc_print_state(&s);
- }
-
-
- LDEF(void set_state(mmc_state_pt s))
- {
- sound_res_state cur_res;
- #ifdef RUBBISH
- TURN_ON_FLAGS(*s,MCS_debug);
- #endif
- TURN_ON_FLAGS(*s,MCS_nhow|MCS_hearmm);
- cur_res=mmc_use_sound_res();
- mmc_set_state(s);
- mmc_close_sound_res(cur_res);
- get_state();
- }
-
- void read_it(void);
- void read_it()
- {
- mmc_state s;
- int err;
- err=mmc_read_prep(&s);
- if(err!=0)
- printf("readit failed %d\n",err);
- else
- mmc_print_state(&s);
- }
-
- void write_it(void);
- void write_it()
- {
- mmc_state s;
- int err;
- mmc_invent_state(&s);
- mmc_print_state(&s);
- err=mmc_write_prep(&s);
- if(err!=0)
- printf("write it failed %d\n",err);
- }
-
- /*
- * warning, for debugging this routine is nearly duplicated in mmc_test.c
- * be sure to fix bugs there too
- */
- void mmc_macmail(long want_inhibit,char *name)
- {
- int ref_num;
- int len;
- mmc_state s;
- mmc_invent_state(&s);
- if(want_inhibit!=MMC_normal)
- s.mmc_st|=MCS_snooze;
- len=imax(0,imin(*name,MMC_uname_len-1));
- if(len!=0)
- memcpy(s.mmc_uname,name+1,len);
- s.mmc_uname[len]=0;
- set_state(&s);
- #ifdef XXXX
- ref_num=mmc_drvr_find(MMC_name,0L); /*find it if present*/
- if(ref_num==0) /*not running so nothing to tell it*/
- return;
- mmc_set_drvr_state(ref_num,&s);
- #endif
- }
-
- void cmd_loop(void);
- void cmd_loop()
- {
- while(TRUE) {
- char ch=get_cmd();
- switch(ch) {
- case 'q':
- return;
- case 'i':
- printf("init err=%d\n",mmc_init());
- break;
- case 's':
- {
- mmc_state s;
- mmc_invent_state(&s);
- set_state(&s);
- break;
- }
- case 'g':
- get_state();
- break;
- case 't':
- mmc_tick();
- get_state();
- break;
- case 'm':
- mmc_macmail(MMC_inhibit,"\pjs5l");
- break;
- case 'o':
- mmc_macmail(MMC_normal,"\pjs5l");
- break;
- case '1':
- mmc_macmail(MMC_inhibit,"\paw0g");
- break;
- case '2':
- mmc_macmail(MMC_normal,"\paw0g");
- break;
- case 'u':
- mmc_uninit();
- break;
- case 'r':
- read_it();
- break;
- case 'w':
- write_it();
- break;
- default:
- printf("unrecignized command '%c'\n",ch);
- }
- }
- }
-
- void open_res(void);
- void open_res()
- {
- int res_file;
- res_file=OpenResFile("\pmmc_drvr.prj.rsrc");
- if(res_file== -1) /*find the resource file?*/
- fatal_error(("can't open resource file mmc_drvr.prj.rsrc.rsrc file %d",ResError()));
- UseResFile(res_file);
- }
-
- int main()
- {
- printf("mmc test client test jig built on %s %s\n",__DATE__,__TIME__);
- open_res();
- cmd_loop();
- }
-